export interface EmpReqELogin {
  empEmail: string;
  password: string;
}
export interface EmpReqALogin {
  empAccount: string;
  password: string;
}
export interface EmpRspLogin {
  id: number;
  authority_id: number;
  account: string;
  email: string;
  empname: string;
  token: string;
}

export interface Position {
  no?: number;
  name: string;
  rank: number;
  status: string;
}

export interface Positions {
  total: number;
  positions: Position[];
}

export interface selectPositions {
  limit: number;
  name: string;
  offset: number;
  status: string;
}

export interface addPositionInfo {
  name: string;
  rank: string;
}

export interface ApiResponse<T> {
  code: number;
  message: string;
  data: T; // 泛型属性，表示返回的数据类型
}

export interface EmpReq {
  id: number;
  empname: string;
  startEntryDate: Date
  endEntryDate: Date
  deptId: number | string;
  postionId: number | string;
  status: number | string;
}

export interface EmpRsp {
  id: number;
  no: string;
  empname: string;
  sex: number | string;
  deptId: number;
  deptName: string;
  positionId: number;
  positionName: string;
  status: number | string;
}

export interface EmpAdd {
  id: number | null;
  no: string | number;
  empname: string;
  password: string;
  email: string;
  account: string;
  sex: number | string;
  entryDate: Date;
  birthday: Date;
  marryStatus: number | string;
  workStartDate: Date;
  deptId: number | string;
  deptName: string;
  positionId: number | string;
  positionName: string;
  authorityId: number | string;
  authorityName: string;
  avatar: string | null;
  status: number | null;
}

export interface Authority {
  id: number | string;
  authority: string;
}

export interface VocationReq {
  empId: number | string;
  endTime: string;
  reason: string;
  startTime: string;
  vocationTypeId: number | string;
}

export interface Vocation {
  id: number;
  empName: string;
  vocationTypeName: string;
  startTime: string;
  endTime: string;
  approveStatus: string;
  days: number;
}

export interface PiVocations {
  ids: number[];
  status: number;
}

export interface Vocations {
  total: number;
  vocations: Vocation[];
}

export interface selectVocation {
  empId: number ;
  limit: number;
  offset: number;

}

export interface DeptEmpRsp {
  empId: number;
  empName: string;
  deptId: number;
  deptName: string;
  startDate: Date;
  endDate: Date;
}

export interface EmpPositionRsp {
  empId: number;
  empName: string;
  positionId: number;
  positionName: string;
  startDate: Date;
  endDate: Date;
}

export interface Attendance {
  id: number;
  employeeName: string;
  department: string;
  date: string | Date;
  checkInTime: string;
  checkOutTime: string;
  status: number;
}

export interface AttendRsp {
  id: number;
  employeeName: string;
  department: string;
  date: string | Date;
  checkInTime: string | Date;
  checkOutTime: string | Date;
  status: number | string;
}

export interface RetroactiveReq {
  checkInTime: Date;
  checkOutTime: Date;
  date: Date;
  reason: string;
}